layui.use(['layer', 'form', 'laydate', 'table','tableSelect'], function () {
    var layer = layui.layer
        , form = layui.form
        , $ = layui.$
        , table = layui.table
        , laydate = layui.laydate
        ,tableSelect=layui.tableSelect;

    table.render({
        elem: '#mytable'//表格的ID
        , url: '../selectSecuritiesInventoryInfo'//表格的数据源 controller里的方法
        ,cellMinWidth: 60 //全局定义常规单元格的最小宽度，layui 2.2.1 新增
        ,height:'full-180'
        , toolbar: '#userToolBar'//通过工具条的ID来区分
        , page: true//开启分页
        , limit: 5//默认进去每页显示5条
        , limits: [5, 10, 15]//自己设置下拉列表5,10,15，行
        , cols: [[//表头
            {type: 'checkbox', fixed: 'left'}
            , {field: 'securityAccrualStockId',align:'center', title: '证券应收应付库存Id'}
            , {field: 'date',align:'center', title: '统计日期'}
            , {field: 'fundId',align:'center', title: '基金Id'}
            , {field: 'securityId',align:'center', title: '证券Id'}
            , {
                field: 'securityType', title: '证券类型',align:'center',
                templet: function (item) {
                    if (item.securityType == 1) {
                        return '估值增值';
                    } else if (item.securityType == 2) {
                        return '债券清算款';
                    } else if (item.securityType == 3) {
                        return '债券利息';
                    }
                }
            }
            , {
                field: 'businessState', title: '业务状态',align:'center',
                templet: function (item) {
                    if (item.businessState == 1) {
                        return '流入';
                    } else if (item.businessState == -1) {
                        return '流出';
                    }
                }
            }
            , {field: 'money',align:'center', title: '总金额'}
            , {
                field: 'initialState', title: '初期状态',align:'center',
                templet: function (item) {
                    if (item.initialState == 1) {
                        return "<span style='color: green'>是</span>"
                    } else if (item.initialState == 2) {
                        return "<span style='color: red'>否</span>"
                    }
                }
            }
            , {field: 'remark', align:'center',title: '备注'}
            , {field: '', title: '操作', align:'center', toolbar: '#toolEventDemo',fixed: 'right'}

        ]]
    });

    //初期状态选中
    form.on('checkbox(initialSigns)', function (data) {
        var addbtn = document.getElementById('addbtn')
        if (data.elem.checked) {
            /* addbtn.classList.remove("layui-btn-disabled")
              addbtn.setAttribute("lay-event", "addbtn")*/
            checked = true;
        } else {
            /* addbtn.classList.add("layui-btn-disabled")
             addbtn.setAttribute("lay-event", "")*/
            //   checked=false;
        }
    });
    //新增表单提交
    //新增提交  form.on 提交事件的方法，第一个参数 submit(表单layfilter)
    form.on('submit(addsubmit)', function (data) {
        console.log(data)
        //1表单数据   formData的意思是表单数据
        var formData = $('#addForm').serialize();
        console.log(formData)
        //2:发送请求到后台去进行保存
        $.post("addSecuritiesInventoryInfo", formData, function (msg) {
            alert("从后台传过来的数据：" + msg);
            if (msg > 0) {
                //3)窗口关闭
                //4)表格刷新 selectSysUser:重新进查询的方法查一次，在界面上显示
                table.reload('mytable');
                //5)给予提示
                layer.msg('添加成功', {
                    title: '提示',
                    area: ['200px',
                        '140px'],
                    time: 2,//自动关闭时间
                    btn: ['确认']
                });
                return false;
                layer.closeAll();//关闭所有窗口

            } else {

                //5)给予提示
                layer.msg('添加失败', {
                    title: '提示',
                    area: ['200px',
                        '140px'],
                    time: 2,//自动关闭时间
                    btn: ['确认']
                });
                layer.closeAll();//关闭所有窗口
            }
        });
        $("#addForm")[0].reset();//表单重置

    });
    //查询
    table.on('toolbar(mytable)', function (obj) {
        //获取选中复选框的对象，
        var checkStatus = table.checkStatus(obj.config.id);//得到表格选中行的ID
        switch (obj.event) {
            //按条件查询
            // alert('模糊查询');
            //模糊查询的代码
            //table.reload();//表格对象的重新加载方法
            case 'search':
                var date = $("#date1").val();
                var securityType = $("#securitiesType2").val();
                console.log(date);
                console.log(securityType);

                // alert('username' + ",");
                // alert('userid' + ",");
                //重新把表格渲染了一遍 mytable是表格的ID
                table.reload('mytable',
                    {
                        //查询的条件
                        where: {
                            'date': date,
                            'securityType': securityType
                        },
                        //page设定默认当前页为1 current 当前的
                        page: {
                            curr: 1
                        }
                    });
                //进行搜索之后不再让值消失，除非自己清空
                $("#date").val(date);
                $("#securityType").val(securityType);
                break;
            case 'deleteAll':
                // alert('批量删除');
                //删除的代码写这里
                var data1 = obj.data;//获取当前行数据
                var layEvent = obj.event;//获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
                var tr = obj.tr; //获得当前行 tr 的 DOM 对象（如果有的话）
                var data = checkStatus.data;
                if (data.length == 0) {
                    layer.msg("请至少选择一条数据",)
                } else {
                    var securityAccrualStockId = [];
                    for (var i = 0; i < data.length; i++) {
                        securityAccrualStockId.push(data[i].securityAccrualStockId);
                    }
                    alert("id"+securityAccrualStockId);
                    //这里是多选删除的
                    layer.confirm('真的删除行么', {icon: 2}, function (index) {
                        //是否确定删除 是就删 取消就不删
                        layer.closeAll();

                        $.ajax({
                            type: "post",
                            url: "deleteSecuritiesInventoryInfo?securityAccrualStockId=" + securityAccrualStockId,//跟删除的是一个方法
                            //field:ids.join(','),
                            data: data1,
                            success: function (msg) {
                                //刷新表格
                                table.reload("mytable")//mytable 是表格的ID
                                location.reload();//刷新,第二种刷新方式，比如第四页只有一条数据，你把它删除了，它就会显示无数据，我们要显示的是前面三页数据，所以就再拿location.leload();再刷新一次
                            }
                        })
                    })
                }
                break;
            case 'addbtn':
                var checked = $("#checkbox").prop("checkbox");
                if (checked == false) {
                    layer.msg("只能添加期初数据");
                    return false;
                } else {
                    var index = layer.open({
                        type: 1,
                        title: '添加证券库存',
                        closeBtn: 1,
                        move: false,
                        content: $("#addSecurities"),
                        area: ['800px', '600px'],
                        btn: []
                    });
                    form.render();
                    break;
                }
        }
    })


    //删除和修改
    table.on('tool(mytable)',function (obj) {//'tool(mytable)' 是 body 里table表格的 lay-filter="mytable"
        var data1 = obj.data;//获取当前行数据
        var layEvent = obj.event;//获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
        var tr = obj.tr; //获得当前行 tr 的 DOM 对象（如果有的话）
        //是否点击删除
        if (layEvent == 'del') {
            var data33 = obj.data;//得到删除行整行的数据
            /* console.log(data33);
             alert(data33);
 */
            layer.confirm('真的删除行么', {icon: 2}, function (index) {
                //是否确定删除 是就删 取消就不删
                layer.closeAll();

                $.ajax({
                    type: "post",
                    url: "deleteSecuritiesInventoryInfo",
                    data: {securityAccrualStockId: data33.securityAccrualStockId}, //发送数据
                    success: function (msg) {
                        //刷新表格
                        table.reload("mytable")//mytable 是表格的ID
                        location.reload();//刷新,第二种刷新方式，比如第四页只有一条数据，你把它删除了，它就会显示无数据，我们要显示的是前面三页数据，所以就再拿location.leload();再刷新一次
                    }
                })
            })
        } else if (layEvent === 'edit') {
            var data1 = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
            //form.val('表单的filter',JSON对象)给表单赋值
            //$.parseJSON()吧JSON字符串转为JSON对象
            //$JSON.stringify() 把表格的行对象数据转化为JSON格式的字符串
            //data1 获取当前行的数据
            form.val('myFrom2', $.parseJSON(JSON.stringify(data1)))
            var index = layer.open({
                //type 为1 弹出一个界面 默认为0 弹出信息框
                type: 1,
                //标题
                title: '编辑证券库存',
                //关闭按钮 默认值为1 有两种 1,2 不许要则为0
                closeBtn: 1,
                //不允许拖动
                move: false,
                content: $("#updateSe"),//内容
                btn: [],
                //宽高
                area: ['800px', '600px'],
            });

            //修改表单提交
            form.on('submit(updateSe)',function () {// 这个updateSysUser 是跟修改submit的 lay-filter 名字一样
                var formData = form.val("myFrom2")
                console.log(formData)//打印语句
                $.ajax({
                    type: "post",
                    url: "updateSecuritiesInventoryInfo",
                    data: formData,
                    success: function (msg) {
                        //刷新表格
                        table.reload("mytable")//mytable 是表格的ID,一整个
                        layer.closeAll();
                    }

                })
                return false;
            })


        }
    })


    laydate.render({
        elem: '.dateStr'
    });

    laydate.render({
        elem: '.dateStr1'
    });
    laydate.render({
        elem: '.dateStr2'
    });


    //新增证券下拉表单
    tableSelect.render({
        elem: '#securityId'
        , table: {
            url: 'selectSecurityIdAndSelectSecurityName'
            , cellMinWidth: 60
            , cols: [
                [
                    {type: 'checkbox'},
                    {field: 'securityId', title: '证券ID'},
                    {field: 'securityName', title: '证券名称'}
                ]
            ]
        }
        , done: function (elem, data) {
            var NEWJSON = [];
            layui.each(data.data, function (index, item) {
                NEWJSON.push(item.securityId);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#securityId").val(item.securityId);// 你要id显示在文本框里，你就填id，要名字就填name
            })
            elem.val(NEWJSON.join(","));
        }
    })

    //新增基金下拉表单
    tableSelect.render({
        elem: '#fundId'
        , table: {
            url: 'selectFundIdAndFundName'
            , cellMinWidth: 60
            , cols: [
                [
                    {type: 'checkbox'},
                    {field: 'fundId', title: '基金ID'},
                    {field: 'fundName', title: '基金名称'}
                ]
            ]
        }
        , done: function (elem, data) {
            var NEWJSON = [];
            layui.each(data.data, function (index, item) {
                NEWJSON.push(item.fundId);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#fundId").val(item.fundId);// 你要id显示在文本框里，你就填id，要名字就填name
            })
            elem.val(NEWJSON.join(","));
        }
    })

    //修改证券下拉表单
    tableSelect.render({
        elem: '#securityId2'
        , table: {
            url: 'selectSecurityIdAndSelectSecurityName'
            , cellMinWidth: 60
            , cols: [
                [
                    {type: 'checkbox'},
                    {field: 'securityId', title: '证券ID'},
                    {field: 'securityName', title: '证券名称'}
                ]
            ]
        }
        , done: function (elem, data) {
            var NEWJSON = [];
            layui.each(data.data, function (index, item) {
                NEWJSON.push(item.securityId);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#securityId2").val(item.securityId);// 你要id显示在文本框里，你就填id，要名字就填name
            })
            elem.val(NEWJSON.join(","));
        }
    })

    //修改基金下拉表单
    tableSelect.render({
        elem: '#fundId1'
        , table: {
            url: 'selectFundIdAndFundName'
            , cellMinWidth: 60
            , cols: [
                [
                    {type: 'checkbox'},
                    {field: 'fundId', title: '基金ID'},
                    {field: 'fundName', title: '基金名称'}
                ]
            ]
        }
        , done: function (elem, data) {
            var NEWJSON = [];
            layui.each(data.data, function (index, item) {
                NEWJSON.push(item.fundId);// 你要id显示在文本框里，你就填id，要名字就填name
                $("#fundId1").val(item.fundId);// 你要id显示在文本框里，你就填id，要名字就填name
            })
            elem.val(NEWJSON.join(","));
        }
    })


    $(document).ready(function () {
        $(":button[name='offSubmit']").click(function () {
            $("#addForm")[0].reset()
            layer.closeAll()
        })
    })

})




